Skip to content

fix: tighten clean tree delete semantics#12406

Merged
f2c-ci-robot[bot] merged 1 commit intodev-v2from
fix/clean-tree-can-delete
Apr 3, 2026
Merged

fix: tighten clean tree delete semantics#12406
f2c-ci-robot[bot] merged 1 commit intodev-v2from
fix/clean-tree-can-delete

Conversation

@ssongliu
Copy link
Copy Markdown
Member

@ssongliu ssongliu commented Apr 3, 2026

Refs #12399

@f2c-ci-robot
Copy link
Copy Markdown

f2c-ci-robot bot commented Apr 3, 2026

Adding the "do-not-merge/release-note-label-needed" label because no release-note block was detected, please follow our release note process to remove it.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: fb56e3f47d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines 109 to +110
case "unknown_backup":
if strings.HasPrefix(item.Name, path.Join(global.Dir.LocalBackupDir, "log/website")) {
dropFileOrDir(item.Name)
} else {
dropFile(item.Name)
}
dropFileOrDir(item.Name)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Constrain unknown-backup deletion paths

The new unknown_backup branch now calls dropFileOrDir(item.Name) directly, so any authenticated caller who can hit /toolbox/clean can submit an arbitrary absolute path (for example / or another system directory) and trigger recursive deletion via os.RemoveAll. This is a regression from the prior behavior that only removed non-directory paths outside log/website, and it removes the last server-side guard against destructive directory deletion for forged requests.

Useful? React with 👍 / 👎.

Comment on lines +404 to 408
if (canDeleteNode(item) && item.isCheck) {
submitCleans.value.push({ treeType: item.type, name: item.name, size: item.size });
continue;
}
if (item.children) {
if (hasChildren(item)) {
loadSubmitCheck(item.children);
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Stop recursing after queuing a deletable node

loadSubmitCheck now queues a checked deletable node and still descends into its children, which causes duplicate clean entries when a checked directory also has checked descendants (common for upload/download trees where directories are marked canDelete). In that case the request includes both parent and child deletions, inflating selected/recorded size and issuing redundant delete operations for paths already removed by the parent.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Member

@wanghe-fit2cloud wanghe-fit2cloud left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

@wanghe-fit2cloud
Copy link
Copy Markdown
Member

/approve

@f2c-ci-robot
Copy link
Copy Markdown

f2c-ci-robot bot commented Apr 3, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: wanghe-fit2cloud

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@f2c-ci-robot f2c-ci-robot bot added the approved label Apr 3, 2026
@f2c-ci-robot f2c-ci-robot bot merged commit 2a498de into dev-v2 Apr 3, 2026
3 checks passed
@f2c-ci-robot f2c-ci-robot bot deleted the fix/clean-tree-can-delete branch April 3, 2026 07:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants